<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Struct template perm_parser</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="../../headers.html#doxygen.headers.parser__fwd_8hpp" title="Header &lt;boost/parser/parser_fwd.hpp&gt;">
<link rel="prev" href="structboost_1_1parser_1_1parser__interface.html" title="Struct template parser_interface">
<link rel="next" href="structboost_1_1parser_1_1quoted__string__parser.html" title="Struct template quoted_string_parser">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="structboost_1_1parser_1_1parser__interface.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../headers.html#doxygen.headers.parser__fwd_8hpp"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="structboost_1_1parser_1_1quoted__string__parser.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="refentry">
<a name="doxygen.headers.structboost_1_1parser_1_1perm__parser"></a><div class="titlepage"></div>
<div class="refnamediv">
<h2><span class="refentrytitle">Struct template perm_parser</span></h2>
<p>boost::parser::perm_parser</p>
</div>
<h2 class="refsynopsisdiv-title">Synopsis</h2>
<div class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: &lt;<a class="link" href="../../headers.html#doxygen.headers.parser__fwd_8hpp" title="Header &lt;boost/parser/parser_fwd.hpp&gt;">boost/parser/parser_fwd.hpp</a>&gt;

</span><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ParserTuple<span class="special">,</span> <span class="keyword">typename</span> DelimiterParser<span class="special">&gt;</span> 
<span class="keyword">struct</span> <a class="link" href="structboost_1_1parser_1_1perm__parser.html" title="Struct template perm_parser">perm_parser</a> <span class="special">{</span>

  <span class="comment">// <a class="link" href="structboost_1_1parser_1_1perm__parser.html#id-1_3_26_11_6_1_1_20_3-bb">public member functions</a></span>
  <a class="link" href="structboost_1_1parser_1_1perm__parser.html#doxygen.headers.structboost_1_1parser_1_1perm__parser_1aeea4061bee00a41dd8883f00ffc94401"><span class="identifier">perm_parser</span></a><span class="special">(</span><span class="identifier">ParserTuple</span><span class="special">)</span><span class="special">;</span>
  <a class="link" href="structboost_1_1parser_1_1perm__parser.html#doxygen.headers.structboost_1_1parser_1_1perm__parser_1a33f5e1f8e0dd65472d07e8afbee0e83f"><span class="identifier">perm_parser</span></a><span class="special">(</span><span class="identifier">ParserTuple</span><span class="special">,</span> <span class="identifier">DelimiterParser</span><span class="special">)</span><span class="special">;</span>
  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Iter<span class="special">,</span> <span class="keyword">typename</span> Sentinel<span class="special">,</span> <span class="keyword">typename</span> Context<span class="special">,</span> 
           <span class="keyword">typename</span> SkipParser<span class="special">&gt;</span> 
    <span class="keyword">auto</span> <a class="link" href="structboost_1_1parser_1_1perm__parser.html#doxygen.headers.structboost_1_1parser_1_1perm__parser_1afb06cc24df7a5c18dcb9be09968dcd3d"><span class="identifier">call</span></a><span class="special">(</span><span class="identifier">Iter</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">Sentinel</span><span class="special">,</span> <span class="identifier">Context</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">SkipParser</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span> 
              <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Iter<span class="special">,</span> <span class="keyword">typename</span> Sentinel<span class="special">,</span> <span class="keyword">typename</span> Context<span class="special">,</span> 
           <span class="keyword">typename</span> SkipParser<span class="special">,</span> <span class="keyword">typename</span> Attribute<span class="special">&gt;</span> 
    <span class="keyword">void</span> <a class="link" href="structboost_1_1parser_1_1perm__parser.html#doxygen.headers.structboost_1_1parser_1_1perm__parser_1a59618f31b11fa8a86a556b8e3bd89bb3"><span class="identifier">call</span></a><span class="special">(</span><span class="identifier">Iter</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">Sentinel</span><span class="special">,</span> <span class="identifier">Context</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">SkipParser</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span> 
              <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">Attribute</span> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Iter<span class="special">,</span> <span class="keyword">typename</span> Sentinel<span class="special">,</span> <span class="keyword">typename</span> Context<span class="special">,</span> 
           <span class="keyword">typename</span> SkipParser<span class="special">,</span> <span class="keyword">typename</span><span class="special">...</span> Ts<span class="special">,</span> <span class="keyword">int</span><span class="special">...</span> Is<span class="special">&gt;</span> 
    <span class="keyword">void</span> <a class="link" href="structboost_1_1parser_1_1perm__parser.html#doxygen.headers.structboost_1_1parser_1_1perm__parser_1aae5d7cfd104e8152174c55f22e364b86"><span class="identifier">call_impl</span></a><span class="special">(</span><span class="identifier">Iter</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">Sentinel</span><span class="special">,</span> <span class="identifier">Context</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">SkipParser</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">,</span> 
                   <span class="emphasis"><em><span class="identifier">unspecified</span></em></span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">tuple</span><span class="special">&lt;</span> <span class="identifier">Ts</span><span class="special">...</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span> 
                   <span class="identifier">std</span><span class="special">::</span><span class="identifier">integer_sequence</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">Is</span><span class="special">...</span> <span class="special">&gt;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
<span class="special">}</span><span class="special">;</span></pre></div>
<div class="refsect1">
<a name="id-1.3.26.11.6.22.4"></a><h2>Description</h2>
<p>Applies each parsers in <code class="computeroutput">ParserTuple</code>, an any order, stopping after all of them have matched the input. The parse succeeds iff all the parsers match, regardless of the order in which they do. The attribute produced is a <code class="computeroutput"><a class="link" href="namespaceboost_1_1parser_1a8a805831f8b910ea5e79472b7af8b016.html" title="Type definition tuple">parser::tuple</a></code> containing the attributes of the subparsers, in their order of the parsers' appearance in <code class="computeroutput">ParserTuple</code>, not the order of the parsers' matches. It is an error to specialize <code class="computeroutput"><a class="link" href="structboost_1_1parser_1_1perm__parser.html" title="Struct template perm_parser">perm_parser</a></code> with a <code class="computeroutput">ParserTuple</code> template parameter that includes an <code class="computeroutput"><a class="link" href="structboost_1_1parser_1_1eps__parser.html" title="Struct template eps_parser">eps_parser</a></code>. </p>
<div class="refsect2">
<a name="id-1.3.26.11.6.22.4.3"></a><h3>
<a name="id-1_3_26_11_6_1_1_20_3-bb"></a><code class="computeroutput">perm_parser</code> public member functions</h3>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem"><pre class="literallayout"><a name="doxygen.headers.structboost_1_1parser_1_1perm__parser_1aeea4061bee00a41dd8883f00ffc94401"></a><span class="identifier">perm_parser</span><span class="special">(</span><span class="identifier">ParserTuple</span> parsers<span class="special">)</span><span class="special">;</span></pre></li>
<li class="listitem"><pre class="literallayout"><a name="doxygen.headers.structboost_1_1parser_1_1perm__parser_1a33f5e1f8e0dd65472d07e8afbee0e83f"></a><span class="identifier">perm_parser</span><span class="special">(</span><span class="identifier">ParserTuple</span> parsers<span class="special">,</span> <span class="identifier">DelimiterParser</span> delimiter_parser<span class="special">)</span><span class="special">;</span></pre></li>
<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Iter<span class="special">,</span> <span class="keyword">typename</span> Sentinel<span class="special">,</span> <span class="keyword">typename</span> Context<span class="special">,</span> 
         <span class="keyword">typename</span> SkipParser<span class="special">&gt;</span> 
  <span class="keyword">auto</span> <a name="doxygen.headers.structboost_1_1parser_1_1perm__parser_1afb06cc24df7a5c18dcb9be09968dcd3d"></a><span class="identifier">call</span><span class="special">(</span><span class="identifier">Iter</span> <span class="special">&amp;</span> first_<span class="special">,</span> <span class="identifier">Sentinel</span> last<span class="special">,</span> <span class="identifier">Context</span> <span class="keyword">const</span> <span class="special">&amp;</span> context<span class="special">,</span> 
            <span class="identifier">SkipParser</span> <span class="keyword">const</span> <span class="special">&amp;</span> skip<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> flags<span class="special">,</span> <span class="keyword">bool</span> <span class="special">&amp;</span> success<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li>
<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Iter<span class="special">,</span> <span class="keyword">typename</span> Sentinel<span class="special">,</span> <span class="keyword">typename</span> Context<span class="special">,</span> 
         <span class="keyword">typename</span> SkipParser<span class="special">,</span> <span class="keyword">typename</span> Attribute<span class="special">&gt;</span> 
  <span class="keyword">void</span> <a name="doxygen.headers.structboost_1_1parser_1_1perm__parser_1a59618f31b11fa8a86a556b8e3bd89bb3"></a><span class="identifier">call</span><span class="special">(</span><span class="identifier">Iter</span> <span class="special">&amp;</span> first_<span class="special">,</span> <span class="identifier">Sentinel</span> last<span class="special">,</span> <span class="identifier">Context</span> <span class="keyword">const</span> <span class="special">&amp;</span> context<span class="special">,</span> 
            <span class="identifier">SkipParser</span> <span class="keyword">const</span> <span class="special">&amp;</span> skip<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> flags<span class="special">,</span> <span class="keyword">bool</span> <span class="special">&amp;</span> success<span class="special">,</span> 
            <span class="identifier">Attribute</span> <span class="special">&amp;</span> retval<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li>
<li class="listitem"><pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Iter<span class="special">,</span> <span class="keyword">typename</span> Sentinel<span class="special">,</span> <span class="keyword">typename</span> Context<span class="special">,</span> 
         <span class="keyword">typename</span> SkipParser<span class="special">,</span> <span class="keyword">typename</span><span class="special">...</span> Ts<span class="special">,</span> <span class="keyword">int</span><span class="special">...</span> Is<span class="special">&gt;</span> 
  <span class="keyword">void</span> <a name="doxygen.headers.structboost_1_1parser_1_1perm__parser_1aae5d7cfd104e8152174c55f22e364b86"></a><span class="identifier">call_impl</span><span class="special">(</span><span class="identifier">Iter</span> <span class="special">&amp;</span> first<span class="special">,</span> <span class="identifier">Sentinel</span> last<span class="special">,</span> <span class="identifier">Context</span> <span class="keyword">const</span> <span class="special">&amp;</span> context<span class="special">,</span> 
                 <span class="identifier">SkipParser</span> <span class="keyword">const</span> <span class="special">&amp;</span> skip<span class="special">,</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> flags<span class="special">,</span> <span class="keyword">bool</span> <span class="special">&amp;</span> success<span class="special">,</span> 
                 <span class="identifier">tuple</span><span class="special">&lt;</span> <span class="identifier">Ts</span><span class="special">...</span> <span class="special">&gt;</span> <span class="special">&amp;</span> retval<span class="special">,</span> 
                 <span class="identifier">std</span><span class="special">::</span><span class="identifier">integer_sequence</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">Is</span><span class="special">...</span> <span class="special">&gt;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre></li>
</ol></div>
</div>
</div>
</div>
<div class="copyright-footer">Copyright © 2020 T. Zachary Laine<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="structboost_1_1parser_1_1parser__interface.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../headers.html#doxygen.headers.parser__fwd_8hpp"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="structboost_1_1parser_1_1quoted__string__parser.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
